Many printing systems of this kind have been proposed. They not only print data but also check the state of each of a series of print jobs involving print data and, in response to a user request, make it possible to perform such print-job operations as print cancel, print stop and resume, and print interrupt. (These operations shall be referred to collectively as “job manipulation” below.) As a result, these systems provide a sophisticated operating environment and contribute to greater user convenience.
In ISO-10175 (Document Print Application), these operations are proposed as abstract concepts.
The print cancel operation is an operation for allowing the user to cancel only a job specified by an identifier, with the printing of other jobs being allowed to continue. The stop and resume operation is for halting the print processing of a job specified by an identifier in response to a stop operation by the user, allowing another job to be printed ahead of the stopped job, and instructing resumption of the stopped job in response to a resume operation performed by the user. The interrupt operation is for allowing a job specified by an identifier to be printed with the highest priority and achieves this by stopping the preceding job and then allowing the preceding job to resume after the specified job is printed.
A necessary prerequisite to these operations is that a job-specific identifier be issued with respect to a job upon clearly recognizing the beginning and end of the job in advance. The reason for this is that all of the operations are carried out upon specifying the identifier.
When to assign an identifier is important. For example, assume that an identifier is assigned by a PDL (Page Description Language) interpreter while print processing in a printing apparatus is in progress. Since the storing of a print job in receive and transmit buffers takes place ahead of the operation of the PDL interpreter, in this case the print job that is stored in the receive buffer will not yet have an identifier assigned to it. As a consequence, a print job that is to undergo job manipulation is limited to a print job having an identifier assigned to it by the PDL interpreter, and the timing of the job manipulation also is limited.
A job identifier can also be assigned to a print job by a host computer. However, a job identifier that has been assigned by a host computer is not a unique identifier as far as the printing apparatus is concerned; even if an identifier is actually applied, the printing apparatus cannot perform a job manipulation regarding the print job to which this identifier has been assigned. Accordingly, an identifier generated by the printing apparatus is used as the identifier for identifying the print job that is to undergo job manipulation. The problem that arises here is when and how the printing apparatus should assign the identifier.
In order to clarify the decision regarding the boundary between print jobs, it is necessary to analyze (parse) the data itself and positively recognize the starting point and end point of each job. The simplest approach is to assign an identifier when the job undergoes PDL interpretation. This method is reliable in that the beginning and end of a job is recognized. In general, however, PDL interpretation subjects the printing apparatus to the heaviest load in that it involves the generation of rendering data, etc. When the processing for assigning the identifier is placed ahead of processing for storing the print job in a receive buffer in the printing apparatus, therefore, the efficiency with which data is received declines locally and there is the possibility that the performance of print processing itself will diminish to a great extent. Ordinarily, it is required that a receive buffer having a comparatively large capacity be placed ahead of the PDL interpreter. This is done in order to avoid a decline in receiving efficiency.
FIG. 1 is a conceptual view useful in describing the operation of a controller in a PDL-type printing apparatus according to the prior art. The apparatus shown in FIG. 1 includes a data receiver 101 for receiving data from a host via a prescribed communication medium; a receive buffer 102 for temporarily storing data sent from the data receiver 101; a rendering generating unit 103 for extracting PDL data from the receive buffer 102, applying translation processing and effecting a conversion to printable intermediate data; an intermediate-data buffer 104 for storing the intermediate data generated by the draw generating unit 103; and a rendering unit 105 for rendering the intermediate data in real time and transmitting the results to a prescribed printer engine. The controller is composed of the above components. The receive buffer 102 may be one constituted by a RAM and having a comparatively small buffer capacity, or one having a large buffer capacity and employing a secondary storage device such as a hard disk. If it is assumed that an identifier is assigned to a job at the time of PDL interpretation, as described above, identifiers will have been assigned to print jobs that fall within the limits indicated in FIG. 1 as being an area in which a job manipulation is possible. It is possible to subject these print jobs to manipulation. However, since an identifier will not yet have been assigned with regard to a print job received in the receive buffer 102 placed in front of the above job manipulation area, job manipulation cannot be applied to this print job. If the arrangement is such that the receive buffer 102 is constituted by a hard disk, a large number of print jobs will accumulate in the receive buffer 102 and, as a result, the user will be unable to subject most of these print jobs to job manipulation because these jobs will not have assigned identifiers.
In an effort to solve this problem, a packet-based printing method using job packets is proposed in the specification of Japanese Patent Application Laid-Open No. 2000-135820. In accordance with this method, a print job is described in ordinary PDL, the job is transmitted upon being divided up into job packets, and the job packets are processed by a pre-processor placed ahead of the receive buffer, whereby the starting and end points of the job are ascertained before input to the receive buffer. The job packet is composed of a header and body. The role of the packet and the packet size are described in the header, and code corresponding to the beginning and end of the job is described in the role of the packet.
The pre-processor that interprets the job packet interprets the header of the job packet, detects the role of the job packet and delivers the actual data to the succeeding stage. Most of the received data, therefore, need not be interpreted. Thus, through processing that is very light in comparison with PDL parsing, packets are judged, print jobs are delimited and a job identifier (also referred to as an “object ID”) can be attached to each print job. As a result, a print job can be distinguished at an early stage and, moreover, there is no decline in performance. In addition, a print job can be specified in the printing apparatus using the attached object ID and this job can be manipulated.
FIG. 2 is a conceptual view useful in describing the operation of a controller in a job-packet-type printing apparatus according to the prior art. This controller has a pre-processor 106 in addition to the components shown in FIG. 1. If the pre-processor 106 receives a packetized print job and the role of a packet is start of the print job, the pre-processor 106 assigns a unique job identifier and then delivers the packet to succeeding stage.
Thus, in accordance with the print-data transfer method that relies upon packetization, it is possible to execute sophisticated print job manipulations by distinguishing among print jobs before they are stored in the receive buffer. In addition, there is no decline in the print-job receiving performance. Both of these points, therefore, can be reconciled.
However, it is required that a printing apparatus support also the conventional PDL transfer method that does not rely upon packetization. This is for the purpose of maintaining compatibility with already existing devices that do not support packetization. Another reason is to have an emulation capability. In such case, however, the boundaries of print jobs cannot be recognized until PDL interpretation is executed, as described above, and hence a limitation is imposed upon the level of print job manipulations that can be implemented.